課程名稱 |
高等演算法 Advanced Algorithms |
開課學期 |
105-2 |
授課對象 |
電機資訊學院 電機工程學研究所 |
授課教師 |
陳和麟 |
課號 |
EE5182 |
課程識別碼 |
921 U2590 |
班次 |
|
學分 |
3.0 |
全/半年 |
半年 |
必/選修 |
選修 |
上課時間 |
星期二7,8,9(14:20~17:20) |
上課地點 |
明達231 |
備註 |
總人數上限:100人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/1052EE5182_adv_alg |
課程簡介影片 |
|
核心能力關聯 |
本課程尚未建立核心能力關連 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
In this course, we will study a variety of different techniques for design and analyzing algorithms. We will mostly focus on problems for which the exact algorithm is not known or not efficient enough and problems with resource constraints. Besides designing efficient algorithms, proving the performance guarantees is also a major topic of this course. Some topics that we will cover are as follows:
1. Approximation Algorithms: Algorithms that find near-optimal solutions with provable performance guarantees in polynomial time. In this course, we will mostly focus on approximate algorithms for NP-hard problems.
2. Randomized Algorithms: Algorithms that use random numbers. We will focus on algorithms with provable success probabilities and/or good expected solution quality.
3. Streaming Algorithms: Algorithms that solves problems on huge datasets. In this type of problem, usually the algorithm is only allowed to read the data once and use no more than a constant or poly-logarithmic amount of space.
4. Online Algorithm: The input to the problem is not known in advance and arrives over time. An online algorithm needs to make decision on how to process a specific input before seeing future inputs. The goal is to perform as well as an algorithm that knows all inputs beforehand.
We will cover different algorithm design techniques such as hashing, sampling and linear programming.
|
課程目標 |
本課程主要針對從事演算法研究的學生,提供演算法設計的技巧與未來學習的方向。 |
課程要求 |
預修課程: 演算法、機率、離散數學、資料結構 |
預期每週課後學習時數 |
|
Office Hours |
|
指定閱讀 |
相關論文 |
參考書目 |
Design of Approximation Algorithms by Williamson and Shmoys
(legal electronic version available online)
Randomized Algorithms by Motwani and Raghavan
Approximation Algorithms by Vazirani
|
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
作業 |
40% |
約四次作業 |
2. |
期中考 |
30% |
|
3. |
期末考 |
30% |
|
|
週次 |
日期 |
單元主題 |
第1週 |
2/21 |
Course Overview,
Knapsack Problem (Review of prior knowledge) |
第2週 |
2/28 |
No Class |
第3週 |
3/07 |
Approximation Algorithms: Subset Sum and Bin Packing |
第4週 |
3/14 |
Linear Programming, ILP & LP relaxation, Vertex Cover, Set Cover |
第5週 |
3/21 |
Integrality Gap, Facility Location Problem, LP Duality |
第6週 |
3/28 |
Primal-Dual Algorithms (Set Cover, Facility Location) |
第7週 |
4/04 |
No Class |
第8週 |
4/11 |
Solving Linear Programs(Simplex & Ellipsoid Methods), HW solutions |
第9週 |
4/18 |
Midterm |
第10週 |
4/25 |
Midterm solutions, Randomized algorithms, Derandomization |
第11週 |
5/02 |
Hash Tables, Uniform Hashing, Sterling's formula, Universal Hashing, Perfect Hashing |
第12週 |
5/09 |
Chernoff Bound, Dynamic Resizing, Consistent Hashing |
第13週 |
5/16 |
Markov Chain, Random Walk |
第14週 |
5/23 |
Counting and Sampling |
第15週 |
5/30 |
No Class |
第16週 |
6/06 |
Streaming Algorithms, Online Algorithms |
第17週 |
6/13 |
Online Algorithms, HW3-4 solutions, Recap |
|